package leetcode_800;

/**
 *@author 周杨
 *ReachANumber_754 一个数字从0出发 第n步只能向前或者向后 移动n步 问最少多少步移动到target
 *describe:每次都移动差不多一半的距离 那么用数学方法做 AC 44%
 *2018年10月17日 下午12:08:57
 */
public class ReachANumber_754 {
	public int reachNumber(int target) {
		target = Math.abs(target);
        int k = 0;
        while (target > 0)
            target -= ++k;
        return target % 2 == 0 ? k : k + 1 + k%2;
    }
}
